﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using EFramework.Web.TypeExtension;
using EFramework.Web.Configuration;

namespace RzCorportativo.Views
{
    public partial class Endereco : System.Web.UI.UserControl
    {


        protected void Page_Load(object sender, EventArgs e)
        {
            var script = "function " + this.CidadeNome.UniqueID.Replace("$", "_") + "_selectedItem(event, ui, context) { " +
                            " var item = ui.item && ui.item.value ? ui.item : context; " +
                                "if (item.CidadeId) { " +
                                    "$(\"input[name='" + this.CidadeId.UniqueID + "']\").val(item.CidadeId.toString(10));" +
                                "} " +
                            "}";

            ScriptManager.RegisterStartupScript(this, this.GetType(), this.CidadeNome.UniqueID, script, true);
            if (this.IsPostBack)
                return;
            this.CidadeNome.Attributes.Add("url", this.ResolveUrl("~/Views/Cadastros/Usuario.aspx/ListarCidade"));
            this.CidadeNome.Attributes.Add("onselected", this.CidadeNome.UniqueID.Replace("$", "_") + "_selectedItem");

        }

        public RzCorportativo.Lib.Endereco Model
        {
            get
            {
                RzCorportativo.Lib.Endereco endereco = new RzCorportativo.Lib.Endereco();
                endereco.EnderecoId = IntExtension.Parse(this.EnderecoId.Value, this.EnderecoId.Value.Length > 0 ? -1 : 0);
                endereco.Cep = MaskConfiguration.RemoveMask(this.Cep.Text, "cepKeyDel");
                endereco.CidadeId = IntExtension.Parse(this.CidadeId.Value, this.CidadeId.Value.Length > 0 ? -1 : 0);
                endereco.Logradouro = this.Logradouro.Text;
                endereco.Numero = this.Numero.Text;
                return endereco;
            }
        }

        internal void LoadModel(Lib.Endereco endereco)
        {
            if (endereco == null)
                return;
            this.EnderecoId.Value = endereco.EnderecoId.ToString();
            this.Cep.Text = endereco.Cep;
            this.CidadeId.Value = endereco.CidadeId.ToString();
            this.CidadeNome.Text = (endereco.Cidade ?? new Lib.Cidade()).Nome;
            this.Logradouro.Text = endereco.Logradouro;
            this.Numero.Text = endereco.Numero;
        }
    }
}